package Net.tcp.loagin;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 模拟登陆：双向
 * 创建服务器
 * 1.指定端口 使用ServerSocket创建服务器
 * 2.阻塞式等待链接accept
 * 3.操作：输入输出流操作
 * 4.释放资源
 */
public class LoginTwoWayServer {
    public static void main(String[] args) throws IOException {
        System.out.println("----Server----");
        //1.指定端口 使用ServerSocket创建服务器
        ServerSocket server = new ServerSocket(8888);
        // 2.阻塞式等待链接accept
        Socket client = server.accept();
        System.out.println("客户端建立了一个连接");
        // 3.操作：输入输出流操作
        DataInputStream dis = new DataInputStream(client.getInputStream());//getInputStream返回此套接字的输入流。
        String data = dis.readUTF();
        String user="";
        String password="";
        //分析数据
        String[] dataArray = data.split("&");
        for (String info:dataArray){
            String[] userInfo = info.split("=");
            if(userInfo[0].equals("uname")){
                System.out.println("用户名为---->"+userInfo[1]);
                user = userInfo[1];
            }else if(userInfo[0].equals("password")){
                System.out.println("密码为---->"+userInfo[1]);
                password = userInfo[1];
            }
        }

        //输出
        DataOutputStream dos = new DataOutputStream(client.getOutputStream());//getOutputStream返回此套接字的输出流。
        //模拟成功失败
        if(user.equals("zhangzhe") && password.equals("zz")){//成功
            dos.writeUTF("登录成功");
        }else{
            dos.writeUTF("用户名或密码错误");
        }
        dos.flush();
        // 4.释放资源
        dis.close();
        dos.close();
        client.close();
        server.close();
    }
}
